/*	
 *				
 *					ISNW ---- It is a war.It is not warcraft!
 *
 *
 *					Author:					zhoukeli(haxixi_keli)
 *					Filename:				IAnimateMeshSceneNode.h
 *					CreateTime:				2008/12/29
 *					ModifyTime:				2008/12/29
 *
 */

#ifndef __ISNW_I_ANIMATE_MESH_SCENE_NODE_H__
#define __ISNW_I_ANIMATE_MESH_SCENE_NODE_H__

#include "ISceneNode.h"
#include "IAnimateMesh.h"

namespace ISNW
{
namespace scene
{
	class ISceneManager;

	enum E_ANIMATE_TYPE
	{
		E_AT_LOOP,
		E_AT_LINEAR,
	};

	class IAnimateMeshSceneNode : public ISceneNode
	{
	public:
		IAnimateMeshSceneNode(ISceneManager* sm,ISceneNode* parent,IAnimateMesh* mesh,s32 id,
			core::vector3df pos,core::vector3df rotate,core::vector3df scale)
			:ISceneNode(sm,parent,id,true,pos,rotate,scale){}

		virtual void setmesh(IAnimateMesh*) = 0;

		virtual const IAnimateMesh* getmesh() const = 0;

		virtual void setFPS(u32 fps) = 0;

		virtual u32 getFPS() const = 0;

		virtual u32 getCurrFrame() const = 0;

		virtual void buildCurrFrame(u32 Time) = 0;

		virtual void setAnimateType(E_ANIMATE_TYPE) = 0;


	};
} // end namespace scene
} // end namespace ISNW
#endif